//
//  PK-ios
//
//  Created by peikua on 15/9/15.
//  Copyright (c) 2015年 peikua. All rights reserved.
//

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

@interface NSString (Category)
/**
 电话号码中间4位*显示

 @param phoneNum 电话号码
 @return 135*****262
 */
+ (NSString*) getSecrectStringWithPhoneNumber:(NSString*)phoneNum;


/**
 银行卡号中间8位*显示

 @param accountNo 银行卡号
 @return <#return value description#>
 */
+ (NSString*) getSecrectStringWithAccountNo:(NSString*)accountNo;


/**
 转为手机格式，默认为-
 
 @param mobile 手机号
 @return <#return value description#>
 */
+ (NSString*) stringMobileFormat:(NSString*)mobile;

//数组中文格式（几万）可自行添加

/**
 金额数字添加单位（暂时写了万和亿，有更多的需求请参考写法来自行添加）
 
 @param value 金额
 @return <#return value description#>
 */
+ (NSString*) stringChineseFormat:(double)value;


/**
 添加数字的千位符

 @param num <#num description#>
 @return <#return value description#>
 */
+ (NSString*) countNumAndChangeformat:(NSString *)num;

/**
 *  NSString转为NSNumber
 *
 *  @return NSNumber
 */
- (NSNumber*) toNumber;

/**
 计算文字高度
 
 @param fontSize 字体
 @param width 最大宽度
 @return <#return value description#>
 */
- (CGFloat  ) heightWithFontSize:(CGFloat)fontSize width:(CGFloat)width;

/**
 计算文字宽度

 @param fontSize 字体
 @param maxHeight 最大高度
 @return <#return value description#>
 */
- (CGFloat  ) widthWithFontSize:(CGFloat)fontSize height:(CGFloat)maxHeight;
/**
 抹除小数末尾的0

 @return <#return value description#>
 */
- (NSString*) removeUnwantedZero;

/**
 //去掉前后空格

 @return <#return value description#>
 */
- (NSString*) trimmedString;

/*!
 * 去掉空格符号操作，分别是去掉左边的空格、去掉右边的空格、去掉两边的空格、去掉所有空格、去掉所有字母、
 * 去掉字符中中所有的指定的字符
 *
 * @return 处理后的字符串
 */
- (NSString *)trimLeft;
- (NSString *)trimRight;
- (NSString *)trim;
- (NSString *)trimAll;
- (NSString *)trimLetters;
- (int)trimOnlyNum;
- (NSString *)trimCharacter:(unichar)character;
- (NSString *)trimWhitespace;
- (NSUInteger)numberOfLines;
- (NSString *)insertAbbr:(NSString *)abbrStr;

/*!
 * @brief 判断是否是空串/判断去掉两边的空格后是否是空串
 *
 * @return YES表示是空串，NO表示非空
 */
- (BOOL)isEmpty;
- (BOOL)isTrimEmpty;
- (NSString *)nullString;

/**
 @brief     是否符合最小长度、最长长度，是否包含中文,首字母是否可以为数字
 @param     minLenth 账号最小长度
 @param     maxLenth 账号最长长度
 @param     containChinese 是否包含中文
 @param     firstCannotBeDigtal 首字母不能为数字
 @return    正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isValidWithMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;


/**
 @brief     是否符合最小长度、最长长度，是否包含中文,数字，字母，其他字符，首字母是否可以为数字
 @param     minLenth 账号最小长度
 @param     maxLenth 账号最长长度
 @param     containChinese 是否包含中文
 @param     containDigtal   包含数字
 @param     containLetter   包含字母
 @param     containOtherCharacter   其他字符
 @param     firstCannotBeDigtal 首字母不能为数字
 @return    正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isValidWithMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
              containDigtal:(BOOL)containDigtal
              containLetter:(BOOL)containLetter
      containOtherCharacter:(NSString *)containOtherCharacter
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;


/**
 添加前缀、后缀（不修改self）

 @param prefix 前缀
 @return 返回添加后的字符串
 */
- (NSString *)addPrefix:(NSString *)prefix;


/**
  添加前缀、后缀（不修改self）

 @param subfix 后缀
 @return 返回添加后的字符串
 */
- (NSString *)addSubfix:(NSString *)subfix;

@end
